#include <iostream>
#include "src/BitSet.h"



int main()
{
    BitSet  s(50);

    s.Set(19,1);
    s.Set(17,0);
    s.Set(13,1);
    s.Set(12,1);

    s[12] =  s[17] = s[19];
    std::cout<<s[12]  ;
    s.Print();
     std::cout<<std::endl;
    for(int i=0;i<20;i++)
    {
        s[i] = 1;
    }

    for(int i=40;i<50;i++)
    {
        s[i] = 1;
    }

    std::cout<<"bits are ->"<<std::endl;
    s.Print();
    std::cout<<"after operator <<10  bits are ->"<<std::endl;
    (s<<10).Print();

    std::cout<<"bits are ->"<<std::endl;
    s.Print();
    std::cout<<"after operator >>10  bits are ->"<<std::endl;
    (s>>10).Print();

    std::cout<<"bits are ->"<<std::endl;
    s.Print();
    std::cout<<"after operator ~ bits are ->"<<std::endl;
    (~s).Print();

    std::cout<<"bits are ->"<<std::endl;
    s.Print();
    std::cout<<"after operator >> 1000 bits are ->"<<std::endl;
    (s>>1000).Print();

    std::cout<<"bits are ->"<<std::endl;
    s.Print();
    std::cout<<"after operator >> 0 bits are ->"<<std::endl;
    (s>>0).Print();


     BitSet  s1(10);
     s1 = s;
     s1.Print();


    return 0;
}
